\hypertarget{group__epi__api}{
\section{Epi\_\-api}
\label{group__epi__api}\index{Epi\_\-api@{Epi\_\-api}}
}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{group__epi__api_gaa31809a4ffcab8c01416755f17d3d725}{EPIModeSet} (unsigned long ulBase, unsigned long ulMode)
\item 
void \hyperlink{group__epi__api_gae22911cb1adf4da34bd0bf68acea14ac}{EPIDividerSet} (unsigned long ulBase, unsigned long ulDivider)
\item 
void \hyperlink{group__epi__api_ga42ba31ad0ec70bc1b4bdb131275e8b0f}{EPIConfigSDRAMSet} (unsigned long ulBase, unsigned long ulConfig, unsigned long ulRefresh)
\item 
void \hyperlink{group__epi__api_ga160888176399b481007bd4ed91d91c7a}{EPIConfigHB8Set} (unsigned long ulBase, unsigned long ulConfig, unsigned long ulMaxWait)
\item 
void \hyperlink{group__epi__api_gaf8cf8364259437473dca705fca2d7523}{EPIConfigGPModeSet} (unsigned long ulBase, unsigned long ulConfig, unsigned long ulFrameCount, unsigned long ulMaxWait)
\item 
void \hyperlink{group__epi__api_ga1f3dd0d93e69e89e415883cb94ad2751}{EPIAddressMapSet} (unsigned long ulBase, unsigned long ulMap)
\item 
void \hyperlink{group__epi__api_ga813b7f0acf7d21baef7a4d4ac99c5151}{EPINonBlockingReadConfigure} (unsigned long ulBase, unsigned long ulChannel, unsigned long ulDataSize, unsigned long ulAddress)
\item 
void \hyperlink{group__epi__api_ga2570640840115cb7cec9e259a1ade6eb}{EPINonBlockingReadStart} (unsigned long ulBase, unsigned long ulChannel, unsigned long ulCount)
\item 
void \hyperlink{group__epi__api_gad98d69055a01fcbe4a0206c5fa6b6d44}{EPINonBlockingReadStop} (unsigned long ulBase, unsigned long ulChannel)
\item 
unsigned long \hyperlink{group__epi__api_gadf93f569aaa6fc1e1e61617ad5b76cef}{EPINonBlockingReadCount} (unsigned long ulBase, unsigned long ulChannel)
\item 
unsigned long \hyperlink{group__epi__api_gaea5817bcf510a49f13bc3ac1f83486c2}{EPINonBlockingReadAvail} (unsigned long ulBase)
\item 
unsigned long \hyperlink{group__epi__api_gaba9cd683b218d15853bd79aab6cd24e8}{EPINonBlockingReadGet32} (unsigned long ulBase, unsigned long ulCount, unsigned long $\ast$pulBuf)
\item 
unsigned long \hyperlink{group__epi__api_gad704990f4c50121c2947b00d1cf6dc88}{EPINonBlockingReadGet16} (unsigned long ulBase, unsigned long ulCount, unsigned short $\ast$pusBuf)
\item 
unsigned long \hyperlink{group__epi__api_gac32a0a1fb63e046a6e49ce843f38137d}{EPINonBlockingReadGet8} (unsigned long ulBase, unsigned long ulCount, unsigned char $\ast$pucBuf)
\item 
void \hyperlink{group__epi__api_ga53c3736dd0661460631a9fe3fdfe367d}{EPIFIFOConfig} (unsigned long ulBase, unsigned long ulConfig)
\item 
unsigned long \hyperlink{group__epi__api_gad37d8fdc9c9bc715058ee4f26873e73e}{EPIWriteFIFOCountGet} (unsigned long ulBase)
\item 
void \hyperlink{group__epi__api_ga833d8bb78b1ce63ea6c56d179a4f04a0}{EPIIntEnable} (unsigned long ulBase, unsigned long ulIntFlags)
\item 
void \hyperlink{group__epi__api_gaf6f4641d14a215984871ddd1921b8afc}{EPIIntDisable} (unsigned long ulBase, unsigned long ulIntFlags)
\item 
unsigned long \hyperlink{group__epi__api_gab08d116451626bc6160645e5da680e1c}{EPIIntStatus} (unsigned long ulBase, tBoolean bMasked)
\item 
unsigned long \hyperlink{group__epi__api_ga8d5aa2932d38794c3b21320b3447e55c}{EPIIntErrorStatus} (unsigned long ulBase)
\item 
void \hyperlink{group__epi__api_gaab9685ff567f336a10579498d95da6a4}{EPIIntErrorClear} (unsigned long ulBase, unsigned long ulErrFlags)
\item 
void \hyperlink{group__epi__api_ga1c06a15cc14618d30a2b775351b61061}{EPIIntRegister} (unsigned long ulBase, void($\ast$pfnHandler)(void))
\item 
void \hyperlink{group__epi__api_ga3d3ea2eb60cece6f9c4736e6b18b4131}{EPIIntUnregister} (unsigned long ulBase)
\end{DoxyCompactItemize}


\subsection{Function Documentation}
\hypertarget{group__epi__api_ga1f3dd0d93e69e89e415883cb94ad2751}{
\index{epi\_\-api@{epi\_\-api}!EPIAddressMapSet@{EPIAddressMapSet}}
\index{EPIAddressMapSet@{EPIAddressMapSet}!epi_api@{epi\_\-api}}
\subsubsection[{EPIAddressMapSet}]{\setlength{\rightskip}{0pt plus 5cm}void EPIAddressMapSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulMap}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga1f3dd0d93e69e89e415883cb94ad2751}
Configures the address map for the external interface.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulMap}]is the address mapping configuration.\end{DoxyParams}
This function is used to configure the address mapping for the external interface. This determines the base address of the external memory or device within the processor peripheral and/or memory space.

The parameter {\itshape ulMap\/} is the logical OR of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-ADDR\_\-PER\_\-SIZE\_\-256B}, {\bfseries EPI\_\-ADDR\_\-PER\_\-SIZE\_\-64KB}, {\bfseries EPI\_\-ADDR\_\-PER\_\-SIZE\_\-16MB}, or {\bfseries EPI\_\-ADDR\_\-PER\_\-SIZE\_\-512MB} to choose a peripheral address space of 256 bytes, 64 Kbytes, 16 Mbytes or 512 Mbytes
\item {\bfseries EPI\_\-ADDR\_\-PER\_\-BASE\_\-NONE}, {\bfseries EPI\_\-ADDR\_\-PER\_\-BASE\_\-A}, or {\bfseries EPI\_\-ADDR\_\-PER\_\-BASE\_\-C} to choose the base address of the peripheral space as none, 0xA0000000, or 0xC0000000
\item {\bfseries EPI\_\-ADDR\_\-RAM\_\-SIZE\_\-256B}, {\bfseries EPI\_\-ADDR\_\-RAM\_\-SIZE\_\-64KB}, {\bfseries EPI\_\-ADDR\_\-RAM\_\-SIZE\_\-16MB}, or {\bfseries EPI\_\-ADDR\_\-RAM\_\-SIZE\_\-512MB} to choose a RAM address space of 256 bytes, 64 Kbytes, 16 Mbytes or 512 Mbytes
\item {\bfseries EPI\_\-ADDR\_\-RAM\_\-BASE\_\-NONE}, {\bfseries EPI\_\-ADDR\_\-RAM\_\-BASE\_\-6}, or {\bfseries EPI\_\-ADDR\_\-RAM\_\-BASE\_\-8} to choose the base address of the RAM space as none, 0x60000000, or 0x80000000
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gaf8cf8364259437473dca705fca2d7523}{
\index{epi\_\-api@{epi\_\-api}!EPIConfigGPModeSet@{EPIConfigGPModeSet}}
\index{EPIConfigGPModeSet@{EPIConfigGPModeSet}!epi_api@{epi\_\-api}}
\subsubsection[{EPIConfigGPModeSet}]{\setlength{\rightskip}{0pt plus 5cm}void EPIConfigGPModeSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulConfig, }
\item[{unsigned long}]{ ulFrameCount, }
\item[{unsigned long}]{ ulMaxWait}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gaf8cf8364259437473dca705fca2d7523}
Configures the interface for general-\/purpose mode operation.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulConfig}]is the interface configuration. \item[{\em ulFrameCount}]is the frame size in clocks, if the frame signal is used (0-\/15). \item[{\em ulMaxWait}]is the maximum number of external clocks to wait when the external clock enable is holding off the transaction (0-\/255).\end{DoxyParams}
This function is used to configure the interface when used in general-\/purpose operation as chosen with the function \hyperlink{group__epi__api_gaa31809a4ffcab8c01416755f17d3d725}{EPIModeSet()}. The parameter {\itshape ulConfig\/} is the logical OR of any of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-GPMODE\_\-CLKPIN} -\/ interface clock is output on a pin
\item {\bfseries EPI\_\-GPMODE\_\-CLKGATE} -\/ clock is stopped when there is no transaction, otherwise it is free-\/running
\item {\bfseries EPI\_\-GPMODE\_\-RDYEN} -\/ the external peripheral drives an iRDY signal into pin EPI0S27. If absent, the peripheral is assumed to be ready at all times. This flag may only be used with a free-\/running clock ({\bfseries EPI\_\-GPMODE\_\-CLKGATE} is absent).
\item {\bfseries EPI\_\-GPMODE\_\-FRAMEPIN} -\/ framing signal is emitted on a pin
\item {\bfseries EPI\_\-GPMODE\_\-FRAME50} -\/ framing signal is 50/50 duty cycle, otherwise it is a pulse
\item {\bfseries EPI\_\-GPMODE\_\-READWRITE} -\/ read and write strobes are emitted on pins
\item {\bfseries EPI\_\-GPMODE\_\-WRITE2CYCLE} -\/ a two cycle write is used, otherwise a single-\/cycle write is used
\item {\bfseries EPI\_\-GPMODE\_\-READ2CYCLE} -\/ a two cycle read is used, otherwise a single-\/cycle read is used
\item {\bfseries EPI\_\-GPMODE\_\-ASIZE\_\-NONE}, {\bfseries EPI\_\-GPMODE\_\-ASIZE\_\-4}, {\bfseries EPI\_\-GPMODE\_\-ASIZE\_\-12}, or {\bfseries EPI\_\-GPMODE\_\-ASIZE\_\-20} to choose no address bus, or and address bus size of 4, 12, or 20 bits
\item {\bfseries EPI\_\-GPMODE\_\-DSIZE\_\-8}, {\bfseries EPI\_\-GPMODE\_\-DSIZE\_\-16}, {\bfseries EPI\_\-GPMODE\_\-DSIZE\_\-24}, or {\bfseries EPI\_\-GPMODE\_\-DSIZE\_\-32} to select a data bus size of 8, 16, 24, or 32 bits
\item {\bfseries EPI\_\-GPMODE\_\-WORD\_\-ACCESS} -\/ use Word Access mode to route bytes to the correct byte lanes allowing data to be stored in the upper bits of the word when necessary.
\end{DoxyItemize}

The parameter {\itshape ulFrameCount\/} is the number of clocks used to form the framing signal, if the framing signal is used. The behavior depends on whether the frame signal is a pulse or a 50/50 duty cycle. This value is not used if the framing signal is not enabled with the option {\bfseries EPI\_\-GPMODE\_\-FRAMEPIN}.

The parameter {\itshape ulMaxWait\/} is used if the external clock enable is turned on with the {\bfseries EPI\_\-GPMODE\_\-CLKENA} option is used. In the case that external clock enable is used, this parameter determines the maximum number of clocks to wait when the external clock enable signal is holding off a transaction. A value of 0 means to wait forever. If a non-\/zero value is used and exceeded, an interrupt will occur and the transaction aborted.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga160888176399b481007bd4ed91d91c7a}{
\index{epi\_\-api@{epi\_\-api}!EPIConfigHB8Set@{EPIConfigHB8Set}}
\index{EPIConfigHB8Set@{EPIConfigHB8Set}!epi_api@{epi\_\-api}}
\subsubsection[{EPIConfigHB8Set}]{\setlength{\rightskip}{0pt plus 5cm}void EPIConfigHB8Set (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulConfig, }
\item[{unsigned long}]{ ulMaxWait}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga160888176399b481007bd4ed91d91c7a}
Configures the interface for Host-\/bus 8 operation.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulConfig}]is the interface configuration. \item[{\em ulMaxWait}]is the maximum number of external clocks to wait if a FIFO ready signal is holding off the transaction.\end{DoxyParams}
This function is used to configure the interface when used in Host-\/bus 8 operation as chosen with the function \hyperlink{group__epi__api_gaa31809a4ffcab8c01416755f17d3d725}{EPIModeSet()}. The parameter {\itshape ulConfig\/} is the logical OR of any of the following:


\begin{DoxyItemize}
\item one of {\bfseries EPI\_\-HB8\_\-MODE\_\-ADMUX}, {\bfseries EPI\_\-HB8\_\-MODE\_\-ADDEMUX}, {\bfseries EPI\_\-HB8\_\-MODE\_\-SRAM}, or {\bfseries EPI\_\-HB8\_\-MODE\_\-FIFO} to select the HB8 mode
\item {\bfseries EPI\_\-HB8\_\-USE\_\-TXEMPTY} -\/ enable TXEMPTY signal with FIFO
\item {\bfseries EPI\_\-HB8\_\-USE\_\-RXFULL} -\/ enable RXFULL signal with FIFO
\item {\bfseries EPI\_\-HB8\_\-WRHIGH} -\/ use active high write strobe, otherwise it is active low
\item {\bfseries EPI\_\-HB8\_\-RDHIGH} -\/ use active high read strobe, otherwise it is active low
\item one of {\bfseries EPI\_\-HB8\_\-WRWAIT\_\-0}, {\bfseries EPI\_\-HB8\_\-WRWAIT\_\-1}, {\bfseries EPI\_\-HB8\_\-WRWAIT\_\-2}, or {\bfseries EPI\_\-HB8\_\-WRWAIT\_\-3} to select the number of write wait states (default is 0 wait states)
\item one of {\bfseries EPI\_\-HB8\_\-RDWAIT\_\-0}, {\bfseries EPI\_\-HB8\_\-RDWAIT\_\-1}, {\bfseries EPI\_\-HB8\_\-RDWAIT\_\-2}, or {\bfseries EPI\_\-HB8\_\-RDWAIT\_\-3} to select the number of read wait states (default is 0 wait states)
\item {\bfseries EPI\_\-HB8\_\-WORD\_\-ACCESS} -\/ use Word Access mode to route bytes to the correct byte lanes allowing data to be stored in bits \mbox{[}31:8\mbox{]}. If absent, all data transfers use bits \mbox{[}7:0\mbox{]}.
\item {\bfseries EPI\_\-HB8\_\-CSBAUD\_\-DUAL} -\/ use different baud rates when accessing devices on each CSn. CS0n uses the baud rate specified by the lower 16 bits of the divider passed to \hyperlink{group__epi__api_gae22911cb1adf4da34bd0bf68acea14ac}{EPIDividerSet()} and CS1n uses the divider passed in the upper 16 bits. If this option is absent, both chip selects use the baud rate resulting from the divider in the lower 16 bits of the parameter passed to \hyperlink{group__epi__api_gae22911cb1adf4da34bd0bf68acea14ac}{EPIDividerSet()}.
\item one of {\bfseries EPI\_\-HB8\_\-CSCFG\_\-CS}, {\bfseries EPI\_\-HB8\_\-CSCFG\_\-ALE}, {\bfseries EPI\_\-HB8\_\-CSCFG\_\-DUAL\_\-CS} or {\bfseries EPI\_\-HB8\_\-CSCFG\_\-ALE\_\-DUAL}. {\bfseries EPI\_\-HB8\_\-CSCFG\_\-CS} sets EPI30 to operate as a Chip Select (CSn) signal. When using this mode, {\bfseries EPI\_\-HB8\_\-MODE\_\-ADMUX} must not be specified. {\bfseries EPI\_\-HB8\_\-CSCFG\_\-ALE} sets EPI30 to operate as an address latch (ALE). {\bfseries EPI\_\-HB8\_\-CSCFG\_\-DUAL\_\-CS} sets EPI30 to operate as CS0n and EPI27 as CS1n with the asserted chip select determined from the most significant address bit for the respective external address map. {\bfseries EPI\_\-HB8\_\-CSCFG\_\-DUAL\_\-ALE} sets EPI30 as an address latch (ALE), EPI27 as CS0n and EPI26 as CS1n with the asserted chip select determined from the most significant address bit for the respective external address map.
\end{DoxyItemize}

The parameter {\itshape ulMaxWait\/} is used if the FIFO mode is chosen. If a FIFO is used along with RXFULL or TXEMPTY ready signals, then this parameter determines the maximum number of clocks to wait when the transaction is being held off by by the FIFO using one of these ready signals. A value of 0 means to wait forever.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga42ba31ad0ec70bc1b4bdb131275e8b0f}{
\index{epi\_\-api@{epi\_\-api}!EPIConfigSDRAMSet@{EPIConfigSDRAMSet}}
\index{EPIConfigSDRAMSet@{EPIConfigSDRAMSet}!epi_api@{epi\_\-api}}
\subsubsection[{EPIConfigSDRAMSet}]{\setlength{\rightskip}{0pt plus 5cm}void EPIConfigSDRAMSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulConfig, }
\item[{unsigned long}]{ ulRefresh}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga42ba31ad0ec70bc1b4bdb131275e8b0f}
Configures the SDRAM mode of operation.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulConfig}]is the SDRAM interface configuration. \item[{\em ulRefresh}]is the refresh count in core clocks (0-\/2047).\end{DoxyParams}
This function is used to configure the SDRAM interface, when the SDRAM mode is chosen with the function \hyperlink{group__epi__api_gaa31809a4ffcab8c01416755f17d3d725}{EPIModeSet()}. The parameter {\itshape ulConfig\/} is the logical OR of several sets of choices:

The processor core frequency must be specified with one of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-SDRAM\_\-CORE\_\-FREQ\_\-0\_\-15} -\/ core clock is 0 MHz $<$ clk $<$= 15 MHz
\item {\bfseries EPI\_\-SDRAM\_\-CORE\_\-FREQ\_\-15\_\-30} -\/ core clock is 15 MHz $<$ clk $<$= 30 MHz
\item {\bfseries EPI\_\-SDRAM\_\-CORE\_\-FREQ\_\-30\_\-50} -\/ core clock is 30 MHz $<$ clk $<$= 50 MHz
\item {\bfseries EPI\_\-SDRAM\_\-CORE\_\-FREQ\_\-50\_\-100} -\/ core clock is 50 MHz $<$ clk $<$= 100 MHz
\end{DoxyItemize}

The low power mode is specified with one of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-SDRAM\_\-LOW\_\-POWER} -\/ enter low power, self-\/refresh state
\item {\bfseries EPI\_\-SDRAM\_\-FULL\_\-POWER} -\/ normal operating state
\end{DoxyItemize}

The SDRAM device size is specified with one of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-SDRAM\_\-SIZE\_\-64MBIT} -\/ 64 Mbit device (8 MB)
\item {\bfseries EPI\_\-SDRAM\_\-SIZE\_\-128MBIT} -\/ 128 Mbit device (16 MB)
\item {\bfseries EPI\_\-SDRAM\_\-SIZE\_\-256MBIT} -\/ 256 Mbit device (32 MB)
\item {\bfseries EPI\_\-SDRAM\_\-SIZE\_\-512MBIT} -\/ 512 Mbit device (64 MB)
\end{DoxyItemize}

The parameter {\itshape ulRefresh\/} sets the refresh counter in units of core clock ticks. It is an 11-\/bit value with a range of 0 -\/ 2047 counts.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gae22911cb1adf4da34bd0bf68acea14ac}{
\index{epi\_\-api@{epi\_\-api}!EPIDividerSet@{EPIDividerSet}}
\index{EPIDividerSet@{EPIDividerSet}!epi_api@{epi\_\-api}}
\subsubsection[{EPIDividerSet}]{\setlength{\rightskip}{0pt plus 5cm}void EPIDividerSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulDivider}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gae22911cb1adf4da34bd0bf68acea14ac}
Sets the clock divider for the EPI module.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulDivider}]is the value of the clock divider to be applied to the external interface (0-\/65535).\end{DoxyParams}
This functions sets the clock divider(s) that will be used to determine the clock rate of the external interface. The {\itshape ulDivider\/} value is used to derive the EPI clock rate from the system clock based upon the following formula.

EPIClock = (Divider == 0) ? SysClk : (SysClk / (((Divider / 2) + 1) $\ast$ 2))

For example, a divider value of 1 results in an EPI clock rate of half the system clock, value of 2 or 3 yield one quarter of the system clock and a value of 4 results in one sixth of the system clock rate.

In cases where a dual chip select mode is in use and different clock rates are required for each chip select, the {\itshape ulDivider\/} parameter must contain two dividers. The lower 16 bits define the divider to be used with CS0n and the upper 16 bits define the divider for CS1n.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga53c3736dd0661460631a9fe3fdfe367d}{
\index{epi\_\-api@{epi\_\-api}!EPIFIFOConfig@{EPIFIFOConfig}}
\index{EPIFIFOConfig@{EPIFIFOConfig}!epi_api@{epi\_\-api}}
\subsubsection[{EPIFIFOConfig}]{\setlength{\rightskip}{0pt plus 5cm}void EPIFIFOConfig (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulConfig}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga53c3736dd0661460631a9fe3fdfe367d}
Configures the read FIFO.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulConfig}]is the FIFO configuration.\end{DoxyParams}
This function configures the FIFO trigger levels and error generation. The parameter {\itshape ulConfig\/} is the logical OR of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-WTFULLERR} -\/ enables an error interrupt when a write is attempted and the write FIFO is full
\item {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-RSTALLERR} -\/ enables an error interrupt when a read is stalled due to an interleaved write or other reason
\item {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-TX\_\-EMPTY}, {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-TX\_\-1\_\-4}, {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-TX\_\-1\_\-2}, or {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-TX\_\-3\_\-4} to set the TX FIFO trigger level to empty, 1/4, 1/2, or 3/4 level
\item {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-RX\_\-1\_\-8}, {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-RX\_\-1\_\-4}, {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-RX\_\-1\_\-2}, {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-RX\_\-3\_\-4}, {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-RX\_\-7\_\-8}, or {\bfseries EPI\_\-FIFO\_\-CONFIG\_\-RX\_\-FULL} to set the RX FIFO trigger level to 1/8, 1/4, 1/2, 3/4, 7/8 or full level
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gaf6f4641d14a215984871ddd1921b8afc}{
\index{epi\_\-api@{epi\_\-api}!EPIIntDisable@{EPIIntDisable}}
\index{EPIIntDisable@{EPIIntDisable}!epi_api@{epi\_\-api}}
\subsubsection[{EPIIntDisable}]{\setlength{\rightskip}{0pt plus 5cm}void EPIIntDisable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulIntFlags}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gaf6f4641d14a215984871ddd1921b8afc}
Disables EPI interrupt sources.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulIntFlags}]is a bit mask of the interrupt sources to be disabled.\end{DoxyParams}
This function disables the specified EPI sources for interrupt generation. The {\itshape ulIntFlags\/} parameter can be the logical OR of any of the following values: {\bfseries EPI\_\-INT\_\-RXREQ}, {\bfseries EPI\_\-INT\_\-TXREQ}, or {\bfseries I2S\_\-INT\_\-ERR}.

\begin{DoxyReturn}{Returns}
Returns None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga833d8bb78b1ce63ea6c56d179a4f04a0}{
\index{epi\_\-api@{epi\_\-api}!EPIIntEnable@{EPIIntEnable}}
\index{EPIIntEnable@{EPIIntEnable}!epi_api@{epi\_\-api}}
\subsubsection[{EPIIntEnable}]{\setlength{\rightskip}{0pt plus 5cm}void EPIIntEnable (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulIntFlags}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga833d8bb78b1ce63ea6c56d179a4f04a0}
Enables EPI interrupt sources.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulIntFlags}]is a bit mask of the interrupt sources to be enabled.\end{DoxyParams}
This function enables the specified EPI sources to generate interrupts. The {\itshape ulIntFlags\/} parameter can be the logical OR of any of the following values:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-INT\_\-TXREQ} -\/ transmit FIFO is below the trigger level
\item {\bfseries EPI\_\-INT\_\-RXREQ} -\/ read FIFO is above the trigger level
\item {\bfseries EPI\_\-INT\_\-ERR} -\/ an error condition occurred
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
Returns None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gaab9685ff567f336a10579498d95da6a4}{
\index{epi\_\-api@{epi\_\-api}!EPIIntErrorClear@{EPIIntErrorClear}}
\index{EPIIntErrorClear@{EPIIntErrorClear}!epi_api@{epi\_\-api}}
\subsubsection[{EPIIntErrorClear}]{\setlength{\rightskip}{0pt plus 5cm}void EPIIntErrorClear (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulErrFlags}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gaab9685ff567f336a10579498d95da6a4}
Clears pending EPI error sources.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulErrFlags}]is a bit mask of the error sources to be cleared.\end{DoxyParams}
This function clears the specified pending EPI errors. The {\itshape ulErrFlags\/} parameter can be the logical OR of any of the following values: {\bfseries EPI\_\-INT\_\-ERR\_\-WTFULL}, {\bfseries EPI\_\-INT\_\-ERR\_\-RSTALL}, or {\bfseries EPI\_\-INT\_\-ERR\_\-TIMEOUT}.

\begin{DoxyReturn}{Returns}
Returns None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga8d5aa2932d38794c3b21320b3447e55c}{
\index{epi\_\-api@{epi\_\-api}!EPIIntErrorStatus@{EPIIntErrorStatus}}
\index{EPIIntErrorStatus@{EPIIntErrorStatus}!epi_api@{epi\_\-api}}
\subsubsection[{EPIIntErrorStatus}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPIIntErrorStatus (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga8d5aa2932d38794c3b21320b3447e55c}
Gets the EPI error interrupt status.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address.\end{DoxyParams}
This function returns the error status of the EPI. If the return value of the function \hyperlink{group__epi__api_gab08d116451626bc6160645e5da680e1c}{EPIIntStatus()} has the flag {\bfseries EPI\_\-INT\_\-ERR} set, then this function can be used to determine the cause of the error.

This function returns a bit mask of error flags, which can be the logical OR of any of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-INT\_\-ERR\_\-WTFULL} -\/ occurs when a write stalled when the transaction FIFO was full
\item {\bfseries EPI\_\-INT\_\-ERR\_\-RSTALL} -\/ occurs when a read stalled
\item {\bfseries EPI\_\-INT\_\-ERR\_\-TIMEOUT} -\/ occurs when the external clock enable held off a transaction longer than the configured maximum wait time
\end{DoxyItemize}

\begin{DoxyReturn}{Returns}
Returns the interrupt error flags as the logical OR of any of the following: {\bfseries EPI\_\-INT\_\-ERR\_\-WTFULL}, {\bfseries EPI\_\-INT\_\-ERR\_\-RSTALL}, or {\bfseries EPI\_\-INT\_\-ERR\_\-TIMEOUT}. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga1c06a15cc14618d30a2b775351b61061}{
\index{epi\_\-api@{epi\_\-api}!EPIIntRegister@{EPIIntRegister}}
\index{EPIIntRegister@{EPIIntRegister}!epi_api@{epi\_\-api}}
\subsubsection[{EPIIntRegister}]{\setlength{\rightskip}{0pt plus 5cm}void EPIIntRegister (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{void($\ast$)(void)}]{ pfnHandler}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga1c06a15cc14618d30a2b775351b61061}
Registers an interrupt handler for the EPI module.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em pfnHandler}]is a pointer to the function to be called when the interrupt is activated.\end{DoxyParams}
This sets and enables the handler to be called when the EPI module generates an interrupt. Specific EPI interrupts must still be enabled with the \hyperlink{group__epi__api_ga833d8bb78b1ce63ea6c56d179a4f04a0}{EPIIntEnable()} function.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__interrupt__api_ga471d00d73ae22faa426c202f608e9c69}{IntRegister()} for important information about registering interrupt handlers.
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gab08d116451626bc6160645e5da680e1c}{
\index{epi\_\-api@{epi\_\-api}!EPIIntStatus@{EPIIntStatus}}
\index{EPIIntStatus@{EPIIntStatus}!epi_api@{epi\_\-api}}
\subsubsection[{EPIIntStatus}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPIIntStatus (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{tBoolean}]{ bMasked}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gab08d116451626bc6160645e5da680e1c}
Gets the EPI interrupt status.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em bMasked}]is set {\bfseries true} to get the masked interrupt status, or {\bfseries false} to get the raw interrupt status.\end{DoxyParams}
This function returns the EPI interrupt status. It can return either the raw or masked interrupt status.

\begin{DoxyReturn}{Returns}
Returns the masked or raw EPI interrupt status, as a bit field of any of the following values: {\bfseries EPI\_\-INT\_\-TXREQ}, {\bfseries EPI\_\-INT\_\-RXREQ}, or {\bfseries EPI\_\-INT\_\-ERR} 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga3d3ea2eb60cece6f9c4736e6b18b4131}{
\index{epi\_\-api@{epi\_\-api}!EPIIntUnregister@{EPIIntUnregister}}
\index{EPIIntUnregister@{EPIIntUnregister}!epi_api@{epi\_\-api}}
\subsubsection[{EPIIntUnregister}]{\setlength{\rightskip}{0pt plus 5cm}void EPIIntUnregister (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga3d3ea2eb60cece6f9c4736e6b18b4131}
Unregisters an interrupt handler for the EPI module.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address.\end{DoxyParams}
This function will disable and clear the handler to be called when the EPI interrupt occurs.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__interrupt__api_ga471d00d73ae22faa426c202f608e9c69}{IntRegister()} for important information about registering interrupt handlers.
\end{DoxySeeAlso}
\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gaa31809a4ffcab8c01416755f17d3d725}{
\index{epi\_\-api@{epi\_\-api}!EPIModeSet@{EPIModeSet}}
\index{EPIModeSet@{EPIModeSet}!epi_api@{epi\_\-api}}
\subsubsection[{EPIModeSet}]{\setlength{\rightskip}{0pt plus 5cm}void EPIModeSet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulMode}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gaa31809a4ffcab8c01416755f17d3d725}
Sets the usage mode of the EPI module.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulMode}]is the usage mode of the EPI module.\end{DoxyParams}
This functions sets the operating mode of the EPI module. The parameter {\itshape ulMode\/} must be one of the following:


\begin{DoxyItemize}
\item {\bfseries EPI\_\-MODE\_\-GENERAL} -\/ use for general-\/purpose mode operation
\item {\bfseries EPI\_\-MODE\_\-SDRAM} -\/ use with SDRAM device
\item {\bfseries EPI\_\-MODE\_\-HB8} -\/ use with host-\/bus 8-\/bit interface
\item {\bfseries EPI\_\-MODE\_\-DISABLE} -\/ disable the EPI module
\end{DoxyItemize}

Selection of any of the above modes will enable the EPI module, except for {\bfseries EPI\_\-MODE\_\-DISABLE} which should be used to disable the module.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gaea5817bcf510a49f13bc3ac1f83486c2}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadAvail@{EPINonBlockingReadAvail}}
\index{EPINonBlockingReadAvail@{EPINonBlockingReadAvail}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadAvail}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPINonBlockingReadAvail (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gaea5817bcf510a49f13bc3ac1f83486c2}
Get the count of items available in the read FIFO.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address.\end{DoxyParams}
This function gets the number of items that are available to read in the read FIFO. The read FIFO is filled by a non-\/blocking read transaction which is configured by the functions \hyperlink{group__epi__api_ga813b7f0acf7d21baef7a4d4ac99c5151}{EPINonBlockingReadConfigure()} and \hyperlink{group__epi__api_ga2570640840115cb7cec9e259a1ade6eb}{EPINonBlockingReadStart()}.

\begin{DoxyReturn}{Returns}
The number of items available to read in the read FIFO. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga813b7f0acf7d21baef7a4d4ac99c5151}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadConfigure@{EPINonBlockingReadConfigure}}
\index{EPINonBlockingReadConfigure@{EPINonBlockingReadConfigure}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadConfigure}]{\setlength{\rightskip}{0pt plus 5cm}void EPINonBlockingReadConfigure (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulChannel, }
\item[{unsigned long}]{ ulDataSize, }
\item[{unsigned long}]{ ulAddress}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga813b7f0acf7d21baef7a4d4ac99c5151}
Configures a non-\/blocking read transaction.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulChannel}]is the read channel (0 or 1). \item[{\em ulDataSize}]is the size of the data items to read. \item[{\em ulAddress}]is the starting address to read.\end{DoxyParams}
This function is used to configure a non-\/blocking read channel for a transaction. Two channels are available which can be used in a ping-\/pong method for continuous reading. It is not necessary to use both channels to perform a non-\/blocking read.

The parameter {\itshape ulDataSize\/} is one of {\bfseries EPI\_\-NBCONFIG\_\-SIZE\_\-8}, {\bfseries EPI\_\-NBCONFIG\_\-SIZE\_\-16}, or {\bfseries EPI\_\-NBCONFIG\_\-SIZE\_\-32} for 8-\/bit, 16-\/bit, or 32-\/bit sized data transfers.

The parameter {\itshape ulAddress\/} is the starting address for the read, relative to the external device. The start of the device is address 0.

Once configured, the non-\/blocking read is started by calling \hyperlink{group__epi__api_ga2570640840115cb7cec9e259a1ade6eb}{EPINonBlockingReadStart()}. If the addresses to be read from the device are in a sequence, it is not necessary to call this function multiple times. Until it is changed, the EPI module will remember the last address that was used for a non-\/blocking read (per channel).

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gadf93f569aaa6fc1e1e61617ad5b76cef}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadCount@{EPINonBlockingReadCount}}
\index{EPINonBlockingReadCount@{EPINonBlockingReadCount}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadCount}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPINonBlockingReadCount (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gadf93f569aaa6fc1e1e61617ad5b76cef}
Get the count remaining for a non-\/blocking transaction.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulChannel}]is the read channel (0 or 1).\end{DoxyParams}
This function gets the remaining count of items for a non-\/blocking read transaction.

\begin{DoxyReturn}{Returns}
The number of items remaining in the non-\/blocking read transaction. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gad704990f4c50121c2947b00d1cf6dc88}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadGet16@{EPINonBlockingReadGet16}}
\index{EPINonBlockingReadGet16@{EPINonBlockingReadGet16}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadGet16}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPINonBlockingReadGet16 (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulCount, }
\item[{unsigned short $\ast$}]{ pusBuf}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gad704990f4c50121c2947b00d1cf6dc88}
Read available data from the read FIFO, as 16-\/bit data items.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulCount}]is the maximum count of items to read. \item[{\em pusBuf}]is the caller supplied buffer where the read data should be stored.\end{DoxyParams}
This function reads 16-\/bit data items from the read FIFO and stores the values in a caller supplied buffer. The function will read and store data from the FIFO until there is no more data in the FIFO or the maximum count is reached as specified in the parameter {\itshape ulCount\/}. The actual count of items will be returned.

\begin{DoxyReturn}{Returns}
The number of items read from the FIFO. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gaba9cd683b218d15853bd79aab6cd24e8}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadGet32@{EPINonBlockingReadGet32}}
\index{EPINonBlockingReadGet32@{EPINonBlockingReadGet32}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadGet32}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPINonBlockingReadGet32 (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulCount, }
\item[{unsigned long $\ast$}]{ pulBuf}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gaba9cd683b218d15853bd79aab6cd24e8}
Read available data from the read FIFO, as 32-\/bit data items.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulCount}]is the maximum count of items to read. \item[{\em pulBuf}]is the caller supplied buffer where the read data should be stored.\end{DoxyParams}
This function reads 32-\/bit data items from the read FIFO and stores the values in a caller supplied buffer. The function will read and store data from the FIFO until there is no more data in the FIFO or the maximum count is reached as specified in the parameter {\itshape ulCount\/}. The actual count of items will be returned.

\begin{DoxyReturn}{Returns}
The number of items read from the FIFO. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gac32a0a1fb63e046a6e49ce843f38137d}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadGet8@{EPINonBlockingReadGet8}}
\index{EPINonBlockingReadGet8@{EPINonBlockingReadGet8}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadGet8}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPINonBlockingReadGet8 (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulCount, }
\item[{unsigned char $\ast$}]{ pucBuf}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gac32a0a1fb63e046a6e49ce843f38137d}
Read available data from the read FIFO, as 8-\/bit data items.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulCount}]is the maximum count of items to read. \item[{\em pucBuf}]is the caller supplied buffer where the read data should be stored.\end{DoxyParams}
This function reads 8-\/bit data items from the read FIFO and stores the values in a caller supplied buffer. The function will read and store data from the FIFO until there is no more data in the FIFO or the maximum count is reached as specified in the parameter {\itshape ulCount\/}. The actual count of items will be returned.

\begin{DoxyReturn}{Returns}
The number of items read from the FIFO. 
\end{DoxyReturn}
\hypertarget{group__epi__api_ga2570640840115cb7cec9e259a1ade6eb}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadStart@{EPINonBlockingReadStart}}
\index{EPINonBlockingReadStart@{EPINonBlockingReadStart}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadStart}]{\setlength{\rightskip}{0pt plus 5cm}void EPINonBlockingReadStart (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulChannel, }
\item[{unsigned long}]{ ulCount}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_ga2570640840115cb7cec9e259a1ade6eb}
Starts a non-\/blocking read transaction.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulChannel}]is the read channel (0 or 1). \item[{\em ulCount}]is the number of items to read (1-\/4095).\end{DoxyParams}
This function starts a non-\/blocking read that was previously configured with the function \hyperlink{group__epi__api_ga813b7f0acf7d21baef7a4d4ac99c5151}{EPINonBlockingReadConfigure()}. Once this function is called, the EPI module will begin reading data from the external device into the read FIFO. The EPI will stop reading when the FIFO fills up and resume reading when the application drains the FIFO, until the total specified count of data items has been read.

Once a read transaction is completed and the FIFO drained, another transaction can be started from the next address by calling this function again.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gad98d69055a01fcbe4a0206c5fa6b6d44}{
\index{epi\_\-api@{epi\_\-api}!EPINonBlockingReadStop@{EPINonBlockingReadStop}}
\index{EPINonBlockingReadStop@{EPINonBlockingReadStop}!epi_api@{epi\_\-api}}
\subsubsection[{EPINonBlockingReadStop}]{\setlength{\rightskip}{0pt plus 5cm}void EPINonBlockingReadStop (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase, }
\item[{unsigned long}]{ ulChannel}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gad98d69055a01fcbe4a0206c5fa6b6d44}
Stops a non-\/blocking read transaction.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address. \item[{\em ulChannel}]is the read channel (0 or 1).\end{DoxyParams}
This function cancels a non-\/blocking read transaction that is already in progress.

\begin{DoxyReturn}{Returns}
None. 
\end{DoxyReturn}
\hypertarget{group__epi__api_gad37d8fdc9c9bc715058ee4f26873e73e}{
\index{epi\_\-api@{epi\_\-api}!EPIWriteFIFOCountGet@{EPIWriteFIFOCountGet}}
\index{EPIWriteFIFOCountGet@{EPIWriteFIFOCountGet}!epi_api@{epi\_\-api}}
\subsubsection[{EPIWriteFIFOCountGet}]{\setlength{\rightskip}{0pt plus 5cm}unsigned long EPIWriteFIFOCountGet (
\begin{DoxyParamCaption}
\item[{unsigned long}]{ ulBase}
\end{DoxyParamCaption}
)}}
\label{group__epi__api_gad37d8fdc9c9bc715058ee4f26873e73e}
Reads the number of empty slots in the write transaction FIFO.


\begin{DoxyParams}{Parameters}
\item[{\em ulBase}]is the EPI module base address.\end{DoxyParams}
This function returns the number of slots available in the transaction FIFO. It can be used in a polling method to avoid attempting a write that would stall.

\begin{DoxyReturn}{Returns}
The number of empty slots in the transaction FIFO. 
\end{DoxyReturn}
